These functions, along with those defined in _mmmm_aaaa_kkkk_eeee_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt(3C), are useful
for implementing user level context switching between multiple threads of
control within a process.
_gggg_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt initializes the structure pointed to by _u_c_p to the current
user context of the calling process. The user context is defined by
_uuuu_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt(5) and includes the contents of the calling process's machine
registers, signal mask and execution stack.
_ssss_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt restores the user context pointed to by _u_c_p. The call to
_ssss_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt does not return; program execution resumes at the point
specified by the context structure passed to _ssss_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt. The context
structure should have been one created either by a prior call to
_gggg_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt or _mmmm_aaaa_kkkk_eeee_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt or passed as the third argument to a signal
handler [see _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2)]. If the context structure was one created
with _gggg_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt, program execution continues as if the corresponding call
of _gggg_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt had just returned. If the context structure was one
created with _mmmm_aaaa_kkkk_eeee_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt, program execution continues with the function
specified to _mmmm_aaaa_kkkk_eeee_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt.
NNNNOOOOTTTTEEEESSSS
When a signal handler is executed, the current user context is saved and
a new context is created by the kernel. If the process leaves the signal
handler via _llll_oooo_nnnn_gggg_jjjj_mmmm_pppp(3C) the original context will not be restored, and
future calls to _gggg_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt will not be reliable. Signal handlers should
use _ssss_iiii_gggg_llll_oooo_nnnn_gggg_jjjj_mmmm_pppp(3C) or _ssss_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt instead.
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
On successful completion, _ssss_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt does not return and _gggg_eeee_tttt_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt
returns 0. Otherwise, a value of -1 is returned and _eeee_rrrr_rrrr_nnnn_oooo is set to